查看原文
其他

天德产品之区块链查询语言BQL

天德攻城狮 天德信链 2023-10-24

点击上方蓝字关注我们吧




区块链的数据采用增量存储的模式,以区块数据和交易数据为主。目前的区块链块数据或交易数据的查询,主要使用遍历查询、基于哈希的查询和基于块高度的查询等方式。这种设计方式下,应用程序会存储上链数据对应的链上哈希,基于应用数据提供的哈希值进行查询,但无法提供基于复合条件的链上查询或范围数据的链上查询,灵活度极低。


随着区块链技术的发展,区块链的应用场景不断丰富,查询需求更加多变,现有的基于哈希等条件的链上查询方式无法满足应用需要。例如,当我们在某一存有用户信息的区块链上查询年龄大于18的所有用户列表时,传统的区块链查询处理方法只能将所有交易数据进行遍历,每个交易提取应用数据段(data数据)进行解析,获取其中年龄字段对应的数值,大于18的通过筛选。当区块链的整体账本较大时,这种查询方式需要的时间成本较高,难以满足应用的效率要求。




区块链查询语言(Blockchain Query Language)











天德实现一种面向对象的区块链查询语言BQL及其处理方法和装置,使原本低效的区块链查询大大提高了易用性、效率和扩展性。


其特征为



交易缓存池pool,初始化时将区块链账本中较新的一部分交易数据获取,交易的应用数据(data数据)部分转换为业务实体对象。可将交易数据和转化后的实体对象数据一同存入pool中,也可将交易数据进行简化,仅将哈希值和对应的实体对象数据存入pool中。当有新的数据上链时,该数据进行同样的转化并存入pool中,保持pool的最新状态。同时,设置pool中交易数量上限,超过上限则根据一定算法将pool中部分交易数据序列化到磁盘上。


其查询装置特征为:



(1)交易业务缓存池pool,缓存区块链数据进行格式转换后的交易业务数据,以支持查询;


(2)BQL解析器,解析BQL查询语言对象,并转换成编程语言可识别的逻辑查询条件。其中,BQL对象基本结构包括:


  • page:用于处理分页查询场景;


  • condition:查询条件;


  • conjunction:连接词,与下一个condition之间的连接关系。


其查询方法特征为



(1)系统启动时初始化交易缓存池pool,区块链数据中的应用数据字段转换为对象格式,一同存入pool;


(2)用户输入或应用构建查询条件;


(3)系统将查询条件转化为BQL对象;


(4)BQL解析器解析BQL对象,翻译成编程语言可识别的逻辑语句;


(5)缓存池pool根据逻辑语句筛选数据并将结果返回;


(6)可选地,系统根据返回结果的交易哈希值进行链上查询,或将返回的结果进行哈希校验,以保证数据的正确性与完整性;


(7)数据返回至应用端。


图1


具体实施案例











某一区块链应用系统,系统启动时初始化pool,将区块链上最新的3000条数据获取,每个交易的应用数据部分(data数据)转化为JSON(JavaScript Object Notation,一种轻量级的数据交换格式)对象,和交易哈希进行映射后存入pool中。pool设定的交易数据上限为10000,当数据量超出上限时,时间戳较小的交易将从pool中序列化到磁盘。


如图2,当进行查询时,系统提供的relation包括等于、不等于、大于、小于、模糊比配,其中等于与不等于查询可以兼容数字或者字符串,而大于小于只能用于数字对比,模糊只能用于字符串查询。提供提供的conjunction包括and和or,并限制一次查询最多可将10个condition进行连接,BQL对象可表达为((c1) && (c2) || (c3) ...)。


图2


BQL解析器收到BQL对象后进行拆解,获取全部的condition,并将每个condition按照and、or关系串联形成系统可执行的逻辑语句,每个condition中包括key和value,其中key对应业务对象中的字段名。


由于pool中交易包含了业务数据JSON对象,系统可直接通过解析完成的查询条件在pool中进行筛选并将对应的交易哈希返回。系统根据返回的交易哈希或交易哈希集合查询对应链上数据,返回查询结果。


推荐阅读

2021国际服贸会新增线上3D展厅银河InHener英雄榜,向奥运英雄们致敬!

管得住、放得开!泰山沙盒,打开监管新模式

天德链又添生态合作伙伴——山东金科院
天德携手睿得共建链上水生态




天德科技
国家高新技术企业,专注于区块链底层、区块链产业沙盒(测试和监控)、互链网核心技术的研发。天德科技拥有500多项知识产权;86项国际领先的区块链核心算法发明专利,其中已授权专利24项;60项计算机软件著作权。


©2021 北京天德科技有限公司

记录英雄故事,传承人类文明,每个人都值得被载入史册
扫码关注天德链日记银河InHener

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存